MSVC projects: Generate and install Emoji GResource data
authorChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 30 May 2022 11:50:16 +0000 (19:50 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 16 Jun 2022 09:42:42 +0000 (17:42 +0800)
Generate the full GResource XML files for the Emoji data, and generate
the binary GResource data from them and copy them as appropriate.

At this point, the installed data files are in-line with what the Meson
builds install, sans the processed translation files.

win32/generate-msvc.mak
win32/install-msvc.mak

index 1a9cce5d3fd2b8aba57d1a216bc7dde8d0de43f5..acc9252e85cf30290c18c61701925e449a2b7344 100644 (file)
@@ -80,6 +80,14 @@ GTK3_DEMO_VCPROJS =  \
        $(GTK3_DEMO_VC1X_PROJS) \
        $(GTK3_DEMO_VC1X_PROJ_FILTERS)
 
+EMOJI_GRESOURCE_XML =  \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\de.gresource.xml        \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\es.gresource.xml        \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\fr.gresource.xml        \
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\zh.gresource.xml
+
+EMOJI_GRESOURCE = $(EMOJI_GRESOURCE_XML:.gresource.xml=.gresource)
+
 generate-base-sources: \
        .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h  \
        $(GDK_GENERATED_SOURCES)        \
@@ -91,7 +99,8 @@ generate-base-sources:        \
        .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-demo\demos.h       \
        .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-demo\demo_resources.c      \
        .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-icon-browser\resources.c   \
-       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-widget-factory\widget_factory_resources.c
+       .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-widget-factory\widget_factory_resources.c  \
+       $(EMOJI_GRESOURCE)
 
 # Copy the pre-defined config.h.win32 and demos.h.win32
 .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gdk-3\config.h: ..\config.h.win32
@@ -412,6 +421,25 @@ vs17\$(DEMO_VS1X_PROJ_FILTERS):
        @echo Copying $** to $@...
        @copy $** $@
 
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\de.gresource.xml: ..\gtk\emoji\gresource.xml.in
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\es.gresource.xml: ..\gtk\emoji\gresource.xml.in
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\fr.gresource.xml: ..\gtk\emoji\gresource.xml.in
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\zh.gresource.xml: ..\gtk\emoji\gresource.xml.in
+
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\de.gresource: .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\de.gresource.xml ..\gtk\emoji\de.data
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\es.gresource: .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\es.gresource.xml ..\gtk\emoji\es.data
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\fr.gresource: .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\fr.gresource.xml ..\gtk\emoji\fr.data
+.\vs$(VSVER)\$(CFG)\$(PLAT)\bin\zh.gresource: .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\zh.gresource.xml ..\gtk\emoji\zh.data
+
+$(EMOJI_GRESOURCE_XML):
+       @echo Generating $@...
+       @if not exist $(@D)\ mkdir $(@D)
+       @$(PYTHON) replace.py -i=$** -o=$@ --action=replace-var --var=lang --outstring=$(@B:.gresource=)
+
+$(EMOJI_GRESOURCE):
+       @echo Generating $@...
+       @$(GLIB_COMPILE_RESOURCES) --sourcedir=..\gtk\emoji $@.xml --target=$@
+
 regenerate-demos-h-win32: ..\demos\gtk-demo\geninclude.py $(demo_actual_sources) $(GTK3_DEMO_VCPROJS)
        @echo Regenerating demos.h.win32 and gtk3-demo VS project files...
        @-del ..\demos\gtk-demo\demos.h.win32
@@ -421,6 +449,8 @@ regenerate-demos-h-win32: ..\demos\gtk-demo\geninclude.py $(demo_actual_sources)
 
 # Remove the generated files
 clean:
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.gresource
+       @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.gresource.xml
        @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-icon-browser\resources.c
        @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-demo\demo_resources.c
        @-del /f /q .\vs$(VSVER)\$(CFG)\$(PLAT)\obj\gtk3-demo\demos.h
index 600956106d4c3dd5716a3814002aec21c3d07d88..5fe35d8762778f7f45acb63cc8132abc56b0c66c 100644 (file)
@@ -126,7 +126,8 @@ install-data:
        @for %t in (16 22 24 32 48 256) do @for %d in ($(PREFIX)\share\icons\hicolor\%tx%t\apps) do @((if not exist %d\ mkdir %d) & copy /b ..\demos\widget-factory\data\%tx%t\gtk3-widget-factory*.png "%d")
        @-$(BASE_BUILT_BIN_DIR)\gtk-update-icon-cache.exe --ignore-theme-index --force "$(PREFIX)\share\icons\hicolor"
 # Auxiliary build-related data files (m4, ITS files, RelaxNG files)
-       @for %d in (aclocal gettext\its gtk-3.0) do @if not exist $(PREFIX)\share\%d\ mkdir $(PREFIX)\share\%d
+       @for %d in (aclocal gettext\its gtk-3.0\emoji) do @if not exist $(PREFIX)\share\%d\ mkdir $(PREFIX)\share\%d
        @copy ..\m4macros\gtk-3.0.m4 $(PREFIX)\share\aclocal
        @for %x in (its loc) do @copy ..\gtk\gtkbuilder.%x $(PREFIX)\share\gettext\its
        @for %x in (rng) do @copy ..\gtk\gtkbuilder.%x $(PREFIX)\share\gtk-3.0
+       @for %l in (de es fr zh) do @for %f in ($(BASE_BUILT_BIN_DIR)\%l.gresource) do @copy %f $(PREFIX)\share\gtk-3.0\emoji